/**
 * 函数的参数和返回值说明
 *
 * 两个参数：
 * 参数1：state 初始值或是上一次的值，值可以是任意类型（根据实际情况）
 * 参数2：组件触发的动作
 *      action是一个对象，它里面必须要有一个 type 属性
 */

const counterReducer = (
  state = 100,
  action: { type: 'counter/add' | 'counter/minus'; payload: number }
) => {
  console.log('---counterReducer---')
  switch (action.type) {
    case 'counter/add':
      return state + action.payload

    case 'counter/minus':
      return state - action.payload

    default: // 刚开始返回初始值
      return state
  }
}

export default counterReducer
